<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Contrato_Model extends CI_Controller {
    
    const TABLE_CLIENTE = 'cliente';
    const TABLE_USUARIO = 'usuario';
    const TABLE_REPRESENTANTE = 'representante';
    const TABLE_RESERVA = 'reserva';
    const TABLE_CONTRATO = 'contrato'; 
    
    function gerenciaContratos(){ 
        $this->db->select('*');        
        $this->db->from(self::TABLE_CONTRATO);
        $contrato = $this->db->get();
        return $contrato->result();
    }
    function visualizaContratos($contrato){ 
        $contrato = $this->db->get_where(self::TABLE_CONTRATO, array('idContrato'=>$this->uri->segment(3)));
        $contrato->row();
        $arquivo = $contrato->result_object[0]->arquivo_contrato;
        return $arquivo;
    }
    public function ativaContrato($contrato){
        if($this->session->userdata('perfil') != 'cliente'){
            $ativa = array('ativo'=>1);
            $this->db->update(self::TABLE_CONTRATO, array('ativo'=>0));
            $this->db->update(self::TABLE_CONTRATO, $ativa, array('idcontrato'=>$contrato));
        } 
    }
    function desativaContrato($contrato){
        if($this->session->userdata('perfil') != 'cliente'){
            $ativa = array('ativo'=>0);
            $this->db->update(self::TABLE_CONTRATO, $ativa, array('idcontrato'=>$contrato, 'ativo'=>0));
        }        
    }
    function dadosContrato($token){ 
        $this->db->select('arquivo_contrato');
        $this->db->from(self::TABLE_CONTRATO);
        $this->db->join(self::TABLE_RESERVA, 'reserva.contrato_idcontrato = contrato.idcontrato','inner');
        $this->db->where('token',$token);
        $contrato = $this->db->get();
        return $contrato->result();
    }    
    function exclui($contrato){
        
        if($this->session->userdata('perfil') != 'cliente'){            
            if($this->db->delete(self::TABLE_CONTRATO, "idcontrato = $contrato")){
                $this->db->select_max('idcontrato');
                $query = $this->db->get(self::TABLE_CONTRATO);
                $query->row();
                $idmax = $query->result_object[0]->idcontrato;
                $this->db->update(self::TABLE_CONTRATO, array('ativo'=>1), array('idcontrato'=>$idmax));             
            }    
        }
    }
    function geraContratoJuridica($token){
        $this->db->select('nome, endereco, bairro, cidade, estado, cep, nregistro, telfixo, nome_rep, cpf, rg, expeditor, endereco_rep, telfixo_rep, telmovel_rep, descricao_reserva');
        $this->db->from(self::TABLE_CLIENTE);
        $this->db->join(self::TABLE_REPRESENTANTE, 'cliente.usuario_idusuario = representante.cliente_usuario_idusuario', 'inner');
        $this->db->join(self::TABLE_USUARIO, 'usuario.idusuario = cliente.usuario_idusuario');         
        $this->db->join(self::TABLE_RESERVA, 'usuario.idusuario = reserva.usuario_idusuario');  
        $this->db->where('token',$token);
        $contrato = $this->db->get();
        return $contrato->result();
    }
    function geraContratoFisica($token){
        $this->db->select('nome, endereco, bairro, cidade, estado, cep, nregistro, telfixo, descricao_reserva');
        $this->db->from(self::TABLE_CLIENTE);
        $this->db->join(self::TABLE_USUARIO, 'usuario.idusuario = cliente.usuario_idusuario');         
        $this->db->join(self::TABLE_RESERVA, 'usuario.idusuario = reserva.usuario_idusuario');  
        $this->db->where('token',$token);
        $contrato = $this->db->get();
        return $contrato->result();
    }
}